package com.kmxd.ams.client.archive.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * 门类配置-元数据
 *
 * @author ZuoLG
 * @since 2022-07-15
 */
@Schema(description = "门类配置-元数据对象")
@Data
public class ArchiveFieldQueryDTO implements Serializable {

  private static final long serialVersionUID = 1L;

  /** 主键ID */
  @Schema(description = "主键ID")
  private Long id;

  /** 门类配置id 关联s_archive_type表主键 */
  @Schema(description = "门类配置id 关联s_archive_type表主键")
  @NotNull(message = "门类配置id 关联s_archive_type表主键不能为空")
  private Long archTypeId;

  /** 所属表名 */
  @Schema(description = "所属表名")
  private String tableId;

  /** 中文名 */
  @Schema(description = "中文名")
  private String dbFieldName;

  /** 数据库字段 */
  @Schema(description = "数据库字段")
  private String dbFieldKey;

  /** 是否利用可见 0否，1是（原字段attrshow） */
  @Schema(description = "是否利用可见 0否，1是（原字段attrshow）")
  private Boolean attrUse;

  /** 是否列表显示 0否，1是（原字段attrshow） */
  @Schema(description = "是否列表显示 0否，1是")
  private Boolean attrList;

  /** 是否统计下级 0否，1是 */
  @Schema(description = "是否统计下级 0否，1是")
  private Boolean attrSummary;

  /** 是否继承上级 0否，1是 */
  @Schema(description = "是否继承上级 0否，1是")
  private Boolean attrExtends;

  /** 元数据分组，元数据分组，0：内容，1：归档情况，2：管理信息，3：卷信息，4：其它信息 */
  @Schema(description = "元数据分组，元数据分组，0：内容，1：归档情况，2：管理信息，3：卷信息，4：其它信息")
  private Long fieldGroup;

  /** 是否需要更新索引 是否需要更新索引，1需要，其它不需要 */
  @Schema(description = "是否需要更新索引 是否需要更新索引，1需要，其它不需要")
  private Boolean esIndex;

  @Schema(description = "字段列表")
  private List<String> dbFieldKeyList;

  /** 数据出现重复时是否提醒 0否，1是 */
  @Schema(description = "数据出现重复时是否提醒")
  private Boolean attrRepeatWarn;

  @Schema(description = "数据出现重复时是否提醒(归档)")
  private Boolean attrRepeatWarnArrange;

  @Schema(description = "列表排序")
  private Integer sortList;

  @Schema(description = "排序字段")
  @TableField(exist = false)
  private String field;

  @Schema(description = "排序字段")
  @TableField(exist = false)
  private String order;

  /** 是否AIP封装 0不封装 1封装 */
  @Schema(description = "是否AIP封装 0不封装 1封装")
  private Boolean xmlExport;

  @Schema(description = "前端检索字段 0否，1是")
  private Boolean attrSearch;
}
